#ifndef SPRITE_H_
#define SPRITE_H_
#define TRUE 1
#define FALSE 0

#include <SDL/SDL.h>
#include <SDL/SDL_image.h>

// Frame representa un frame independiente de un sprite.
class Frame {
	public:
		SDL_Surface *img;
		void cargar(const char *path);
		void liberar();
};

// La clase Sprite está formada por un array de frames;
class Sprite {
	private:
		int posx,posy;
		int estado; 
		int nframes;   //cantidad de frames del sprite
		int cont;
		
	public:
		Frame *sprite;
		Sprite(int nf);
		Sprite();
		void finalizar();
		void agregar_frame(Frame f);
		void seleccionar_frame(int nf);
		int frames() {return cont;}
		void setx(int x) {posx=x;}
		void sety(int y) {posy=y;}
		void addx(int c) {posx+=c;}
		void addy(int c) {posy+=c;}
		int getx() {return posx;}
		int gety() {return posy;}
		int getw() {return sprite[estado].img->w;}
		int geth() {return sprite[estado].img->h;}
		void dibujar(SDL_Surface *superficie);
		int colision(Sprite sp);
};
#endif
